热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

上限|时分_ORACLE普通表转换成自动分区表

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ORACLE普通表转换成自动分区表相关的知识,希望对你有一定的参考价值。1、先创建一张和普通表一样的分区表(表的字段太多

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ORACLE普通表转换成自动分区表相关的知识,希望对你有一定的参考价值。


1、先创建一张和普通表一样的分区表(表的字段太多了,这字段是经过筛选用来测试)

创建分区表语法关键定义:

根据年: INTERVAL(NUMTOYMINTERVAL(1,'YEAR'))
根据月: INTERVAL(NUMTOYMINTERVAL(1,'MONTH'))
根据天: INTERVAL(NUMTODSINTERVAL(1,'DAY'))
根据时分秒: NUMTODSINTERVAL( n, 'DAY'|'HOUR'|'MINUTE'|'SECOND')

同时可以通过MAXVALUE来指定最大值,MAXVALUE用实际值代替

--,PARTITION DW_KAD_PRM_DETAILS_PART_MAXVAL values LESS THAN (MAXVALUE)

以上。

先查询出原表最小日期select min(starttime ) from DW_KAD_PRM_DETAILS;

我这边查询出的最小日期是0001/01/01这个特殊值,那么久从这个字段开始,建表语句如下:

create table DW_KAD_PRM_DETAILS_PART
(
prmcode VARCHAR2(50),
prmname VARCHAR2(1000),
prmdesc VARCHAR2(1000),
starttime DATE,
endtime DATE,
prmflagname VARCHAR2(50),
prmtypecode VARCHAR2(50),
prmtypename VARCHAR2(100),
modifytime DATE,
createtime DATE default sysdate
)
tablespace BIDEV_DATA
PARTITION BY RANGE (starttime) interval (numtoyminterval(1, 'month'))
STORE IN (BIDEV_DATA)
(
partition DW_KAD_PRM_DETAILS_PART_SP1 values less than (to_date('0001/01/01','yyyy/mm/dd')) tablespace BIDEV_DATA
--,PARTITION DW_KAD_PRM_DETAILS_PART_MAXVAL values LESS THAN (to_date('2999/12/31','yyyy/mm/dd')) 这里需要自增长,所以不限上限
);
/*-- Create/Recreate indexes
create index IDX1_DW_KAD_PRM_DETAILS_PART on DW_KAD_PRM_DETAILS_PART (PRMCODE)
tablespace BIDEV_DATA
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);*/




2、将原表的数据插入

insert into DW_KAD_PRM_DETAILS_PART
select * from bidev.dw_kad_prm_details where STARTTIME




查看表的效果如下,sys_开头的分区就是数据库自行创建


分区列是不许有空值存在的,如果插入空值则报错ORA-14300

insert into DW_KAD_PRM_DETAILS_PART
select * from bidev.dw_kad_prm_details where STARTTIME is null and rownum<10;

报错信息如下



推荐阅读
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 开发笔记:select from具体执行相关知识介绍及案例分析
    本文由编程笔记小编整理,主要介绍了select from具体执行相关的知识,包括数据插入、查询最小rowID、查询每个重复名字的最小rowID、删除重复数据等操作,并提供了案例分析。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了在Oracle数据库中创建序列时如何选择cache或nocache参数。cache参数可以提高序列的存取速度,但可能会导致序列丢失;nocache参数可以避免序列丢失,但在高并发访问时可能导致性能问题。文章详细解释了两者的区别和使用场景。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
author-avatar
幸运幸福摩天轮的世界
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有